# -!- coding: utf-8 -!-
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
 存放api接口信息。以dict形式存放，这样就可以API_ALL[''][url]这种方式去取，看起来较直观，知道取得是哪个接口的那部分信息
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

from datetime import datetime
import json
from pycacho.cachobase.deal_time import minus_date


mblNo = '15000000000'   # 15346297999
jrnNo = 'CN' + datetime.now().strftime('%Y%m%d%H%M%S')
hbUsrNo = 'HB' + jrnNo
c_date = datetime.now().strftime('%Y%m%d')
c_time = datetime.now().strftime('%H%M%S')
HeadSndOrgan = 'RENDONG'
HeadRevOrgan = 'SHBANK'
tradeChannelId = 'CMCC'
productParam = '91021141'
subProdParam = 'RDInstallmentDeputePay24'
acctCode = 'RDCPS001'          # 代偿代码
inteRateCode= 'RDI01',         # 执行利率码
pnitRateCode= 'RDP01',         # 罚息利率码
cleanCode = 'RDCLR001'         # 清算代码RDCLR+移动省份编号（3位）

# 接出接口
API_MSYD={
    # v4.3接口文档新增：实际授信方查询接口
    "actualOrgPreQuery1":{
        "requestTm":datetime.now().strftime('%Y%m%d%H%M%S'),      # 请求时间 通用字段
        "jrnNo":jrnNo,                     # 请求流水号  通用字段
        "hbUsrNo":hbUsrNo,                 # 和包贷用户号
        "mblNo":mblNo,                     # 用户注册手机号
        "usrIdName":"李媛媛",
        "usrIdCard":"4301324324345342",
        "usrProv": "01",
        "preJrnNo": "12345678",            # 预查询流水号
        "appId": "HB",                     # 渠道编码 固定HB
        "rsvVal1":None,
        "rsvVal2": None,
        "rsvVal3": None,
        "rsvVal4": None,
        "rsvVal5": None
    },

    # 授信申请接口
    "apply":{
        "requestTm":datetime.now().strftime('%Y%m%d%H%M%S'),      # 请求时间 通用字段
        "jrnNo":jrnNo,                     # 请求流水号  通用字段
        "qryCreditId":"12312312",          # 统一购机平台生成：授信流水，唯一
        "hbUsrNo":hbUsrNo,                 # 和包贷用户号
        "mblNo":mblNo,                     # 用户注册手机号
        "usrIdName":"李媛媛",
        "usrIdCard":"4301324324345342",
        "idCardFrontID":"123456",          # 图片唯一流水号
        "idCardBackID":"123456",           # 图片唯一流水号
        "livePictureID": "123456",         # 图片唯一流水号
        "zipCode":"412007",
        "addressCode":"071",                # 省市区编码 枚举值 市编码
        "address":"北京",
        "inCome":"002",                     # 月收入 枚举值 001~007   002：[3001,5000]
        "schooling": "004",                 # 学历 枚举值 001~007      004：大专
        "socialIdentity": "001",            # 社会身份 枚举值 001~004   001：企业事业单位
        "contactName":"段炳华",
        "contactMblNo":"18728672755",
        "contactRelation":"004",            # 紧急联系人关系 枚举值 001~009
        "bankCardNo":"6217004150000731748",
        "bankCardName":"喻浩广",
        "bankMblNo":"13730417553",
        "bankCode":"ICBC",                 # 银行编码 枚举值
        "liveOrgNm":"2",
        "liveOrgId":"1",
        "liveScore":"90",
        "appId":"HB",                      # 渠道编码 固定HB
        "regDt":"20190708",                # 注册日期 20190708
        "maritalSta":"1",                  # 1-已婚,0-未婚
        "usrProvNo":"21",                  # 用户归属省份  省份枚举值标识:01~31
        "idCardFront": "",                 # 非必须
        "idCardBack": "",                  # 非必须
        "livePicture": "",                 # 非必须
        "idCardFrontUrl": "",              # 非必须
        "idCardBackUrl": "",               # 非必须
        "livePictureUrl": "",              # 非必须
        "usrJob": "",                      # 非必须:工作类型 枚举值 001~021
        "companyName": "",                 # 非必须
        "companyAddress": "",              # 非必须
        "companyAddressCode": "",          # 非必须
        "companyMblNo": "",                # 非必须  公司电话
        "hbScore": "",                     # 非必须
        "creditTotScore": "",              # 非必须
        "creditModScore": "",              # 非必须
        "oprId": "",                       # 非必须；营业员编号
        "oprMblNo": "",                    # 非必须：营业员手机号
        "userType": "",                    # 非必须
        "userStarLvl": "",                 # 非必须
        "applyModelCode": "",              # 非必须
        "applyIp": "",                     # 非必须
        "userMail": "",                    # 非必须
        "idExpDt": "20201220",             # 非必须(20201220)
        "country": "",                     # 非必须
        "nation": "",                      # 非必须
        "cusSex": "0",                     # 非必须 性别 0-女,1-男,2-未知
        "totalBonusAmt": "",               # 非必须 总红包额
        "applseq": "",                     # 非必须
        "contactName1": "",                # 非必须  第二紧急联系人
        "contactMblNo1": "",               # 非必须
        "contactRelation1": "",            # 非必须
        "contactName2": "",                # 非必须
        "contactMblNo2": "",               # 非必须
        "contactRelation2": "",            # 非必须
        "actOrgId": "002647",              # v4.3接口文档新增：实际授信方编号
        "ocrCompleteTime": "",             # v5.9接口文档新增：ocr完成时间
        "cardCompleteTime": "",            # v5.9接口文档新增：还款卡绑卡时间
        "creditSignCompleteTime": "",      # v5.9接口文档新增：授信协议签订时间
        "faceCompleteTime": "",            # v5.9接口文档新增：活体通过时间
    },

    # 授信状态查询接口
    "apply_status":{
	    "requestTm":datetime.now().strftime('%Y%m%d%H%M%S'),      # 请求时间 通用字段
        "jrnNo":jrnNo,                     # 请求流水号  通用字段
        "qryCreditId":"12312312",          # 以此作为查询条件
        "hbUsrNo":hbUsrNo,                 # 和包贷用户号
        "appId":"HB",                      # 渠道编码 固定HB
    },

    # 借款实际出资方预查询接口
    "actualOrgPreQuery":{
        "requestTm":datetime.now().strftime('%Y%m%d%H%M%S'),      # 请求时间 通用字段
        "jrnNo":jrnNo,                     # 请求流水号  通用字段
        "hbUsrNo":hbUsrNo,                 # 和包贷用户号
        "mblNo":mblNo,                     # 用户注册手机号
        "brwOrdNo":"18390525555",          # 和包贷借款订单号
        "brwOrdDt":"20190708",             # 和包贷借款订单日期
        "productId":"套餐编号",
        "pkgAmt":"900.00",                       # 套餐金额
        "loanAmt": "900.00",               # 贷款金额
        "loanMonth":"24",                  # 借款分期数
        "goodId":"071",
        "goodNm":"商品名称",
        "oprId":"002",                     # 营业员编号
        "oprMblNo": "159173000",           # 营业员手机号
        "depId":"001",
        "depNm":"营业厅名称",
        "depMngMblNo": "159173001",        # 业务办理营业厅负责人手机号
        "appId":"HB",                      # 渠道编码 固定HB
        "mngModel":"001",                  # 营业厅经营模式 枚举值 001~006
        "busTyp":"1",                      # 业务类型：0-非终端类,1-终端类
        "depProvNo":"01",                  # 营业厅省份编号  省份枚举值标识:01~31
        "depCityNo":"031",                 # 营业厅地市编号 枚举值标识:
        "depRegNo":"1",                    # 营业厅区域编号 枚举值标识:
        "actBrwMblNo":"159173002",         # 实际借款用户手机号
        "actBrwHbUsrNo":"111",             # 实际借款和包ID
        "actBrwIdNo":"4301324324345342",   # 实际借款用户身份证号
        "productNm": "",                   # 套餐描述
        "applyModelCode": "",              # 用户借款申请手机串码
        "applyIp": ""                      # 用户借款申请IP地址
    },

    # 合同签章接口
    "sign":{
        "requestTm":datetime.now().strftime('%Y%m%d%H%M%S'),      # 请求时间 通用字段
        "jrnNo":jrnNo,                     # 请求流水号  通用字段
        "hbUsrNo":hbUsrNo,                 # 和包贷用户号
        "signType":"Loan",                 # 签章类型：Credit-授信签章，Loan-借款签章，默认为借款签章
        "brwOrdNo":"18390525555",          # 和包贷借款订单号
        "base64Content": "test",           # 待签章电子合同的base64内容
    },

    # 借款申请接口
    "freeze":{
        "requestTm":datetime.now().strftime('%Y%m%d%H%M%S'),      # 请求时间 通用字段
        "jrnNo":jrnNo,                     # 请求流水号  通用字段
        "hbUsrNo":hbUsrNo,                 # 和包贷用户号
        "mblNo":mblNo,                     # 用户注册手机号
        "brwOrdNo":"18390525555",          # 和包贷借款订单号
        "brwOrdDt":datetime.now().strftime('%Y%m%d'),   # 和包贷借款订单日期
        "productId":"套餐编号",
        "pkgAmt":"1200.00",                # 套餐金额
        "loanAmt": "1000.00",              # 贷款金额
        "loanMonth":"24",                  # 借款分期数
        "goodId":"071",
        "goodNm":"商品名称",
        "oprId":"002",                     # 营业员编号
        "oprMblNo": "159173000",           # 营业员手机号
        "depId":"002",
        "depNm":"测试县湖口永利移动专营店",
        "depMngMblNo": "159173001",        # 业务办理营业厅负责人手机号
        "appId":"HB",                      # 渠道编码 固定HB
        "mngModel":"001",                  # 营业厅经营模式 枚举值 001~006
        "busTyp":"1",                      # 业务类型：0-非终端类,1-终端类
        "depProvNo":"18",                  # 营业厅省份编号  省份枚举值标识:01~31
        "depCityNo":"031",                 # 营业厅地市编号 枚举值标识:
        "depRegNo":"1",                    # 营业厅区域编号 枚举值标识:
        "actBrwMblNo":"1591730021",        # 实际借款用户手机号
        "actBrwHbUsrNo":"111",             # 实际借款和包ID
        "actBrwIdNo":"440306199001020060", # 实际借款用户身份证号
        "actualOrgId": "888190900238401",  # 实际借款出资方编号
        "provStgDay": "02",                # 省份账单日
        "productNm": "119元档2019年异业直降460元（8折）平档版",                   # 套餐描述
        "applyModelCode": "",              # 用户借款申请手机串码
        "applyIp": "",                     # 用户借款申请IP地址
        "mercId": "",                      # 门店商户号
        "mercNm": "",                      # 门店商户名称
        #"oprCusNm": "",                    # v4.3接口文档新增：营业员姓名
        #"depMngCusNm": "",                 # v4.3接口文档新增：门店负责人姓名
    },

    # 借款状态查询接口
    "freeze_status":{
	    "requestTm":datetime.now().strftime('%Y%m%d%H%M%S'),      # 请求时间 通用字段
        "jrnNo":jrnNo,                     # 请求流水号  通用字段
        "brwOrdNo":"12312312",             # 和包贷借款订单号()
        "brwOrdDt": "20190708",            # 和包贷借款订单日期
        "orgOrdNo":"12312312",             # 资金方借款订单号(可以为空)
        "brwAmt": "1000.00",               # 贷款金额
        "appId":"HB",                      # 渠道编码 固定HB
    },

    # 资金方解冻额度接口
    "unfreeze":{
	    "requestTm":datetime.now().strftime('%Y%m%d%H%M%S'),      # 请求时间 通用字段
        "jrnNo":jrnNo,                     # 请求流水号  通用字段
        "brwOrdNo":"12312312",             # 和包贷借款订单号()
        "brwOrdDt": "20190708",            # 和包贷借款日期
        "appId":"HB",                      # 渠道编码 固定HB
    },

    # 提货人脸核身接口
    "pwCompare":{
        "requestTm":datetime.now().strftime('%Y%m%d%H%M%S'),      # 请求时间 通用字段
        "jrnNo":jrnNo,                     # 请求流水号  通用字段
        "hbUsrNo":hbUsrNo,                 # 和包贷用户号
        "brwOrdNo":"18390525555",          # 和包贷借款订单号
        "base64Image": "test"              # 提货人图片base64格式
    },

    # 套餐办理通知接口brwOrdDt
    "block":{
        "requestTm":datetime.now().strftime('%Y%m%d%H%M%S'),      # 请求时间 通用字段
        "jrnNo":jrnNo,                     # 请求流水号  通用字段
        "brwOrdNo":"18390525555",          # 和包贷借款订单号
        "brwOrdDt":minus_date(1,'s'),      # 和包贷借款订单日期  '20200311'
        "orgOrdNo":"12312312",             # 资金方借款订单号
        "acpTm": minus_date(1,'q'),        # 业务办理时间 '20200312151512'
        "modelCode": "123456",             # 机型串码编号
        "appId": "HB",                     # 渠道编码 固定HB
        "pickCode":"24",                   # 取货码
        "oprId":"002",                     # 营业员编号
        "oprMblNo": "159173000",           # 营业员手机号
        "depId":"001",
        "depNm":"营业厅名称",
        "mblNo":mblNo,                     # 用户注册手机号
        "groupPicture": "",                # 取货图片
        "ticketPicture": "",               # 小票图片
        "groupPictureUrl": "",             # 取货图片地址链接
        "ticketPictureUrl": "",            # 小票图片地址链接
        "groupPictureId": "",              # 取货图片ID
        "ticketPictureId": ""              # 小票图片ID
    },

    # 还款计划查询接口  响应的planList.rpyAmt=本金+利息
    "queryRepaymentPlan":{
	    "requestTm":datetime.now().strftime('%Y%m%d%H%M%S'),      # 请求时间 通用字段
        "jrnNo":jrnNo,                     # 请求流水号  通用字段
        "mplOrdNo":"12312312",             # 和包贷借款订单号()
        "mplOrdDt": "20190708",            # 和包贷借款日期
        "orgOrdNo": "12312312",            # 资金方借款订单号
        "appId":"HB",                      # 渠道编码 固定HB
    },

    # 主动还款申请接口  响应的planList.rpyAmt=本金+利息
    "preview":{
        "requestTm":datetime.now().strftime('%Y%m%d%H%M%S'),      # 请求时间 通用字段
        "jrnNo":jrnNo,                     # 请求流水号  通用字段
        "brwOrdNo":"18390525555",          # 和包贷借款订单号
        "brwOrdDt":"20190708",             # 和包贷借款订单日期
        "orgOrdNo":"12312312",             # 资金方借款订单号
        "ordMod":"1",                      # 借款订单模式  1-分期还款
        "rpyMod": "1",                     # 还款模式(ordMod=1时必传) 0：还全部(购机不传),1-还某期,2-提前清贷,3-退货
        "rpySeq":"1",                      # 还款期数 当rpyMod=1时必传,其余为空
        "orgPlanNo":"190723HB0000061",     # 资金方还款计划号  当rpyMod=1时必传,其余为空
        "actRpyAmt": "",                   # 实际还款金额
        "orgUsrId":"",                     # 资金方用户id  默认传空
        "appId": "HB"                      # 渠道编码 固定HB
    },

    # 扣款结果通知接口
    "repayment":{
        "requestTm":datetime.now().strftime('%Y%m%d%H%M%S'),      # 请求时间 通用字段
        "jrnNo":jrnNo,                     # 请求流水号  通用字段
        "brwOrdNo":"18390525555",          # 和包贷借款订单号
        "brwOrdDt":"20190726",             # 和包贷借款订单日期
        "orgOrdNo":"12312312",             # 资金方借款订单号
        "ordMod":"1",                      # 借款订单模式  1-分期还款
        "rpyMod": "1",                     # 还款模式(ordMod=1时必传) 0：还全部(购机不传),1-还某期,2-提前清贷,3-退货
        "rpySeq":"1",                      # 还款期数 当rpyMod=1时必传,其余为空
        "orgPlanNo":"",                    # 资金方还款计划号  当rpyMod=1时必传,其余为空
        "rpyAmt": "1000.00",               # 实际还款金额    当ordMod=2、3时必传
        "rpyOrdNo": "18390525555",         # 和包贷还款订单号
        "rpyOrdDt": '20190813',            # 和包贷还款订单日期
        "rpySts": "S",                     # 还款状态 S成功/F失败
        "rpyDesc": "还款成功",              # 还款结果描述
        "buisnessId": "002",               # 业务类型  001-号码借,002-购机直降
        "isOverdue": "",                   # 可以为空 0-未逾期,1-已逾期
        "capCorg": "",                     # 用户还款卡银行编码
        "crdNoLast": "",                   # 用户还款卡末四位
        "acPayTyp": "",                    # 扣款方式   001-用户还款卡，100-用户和包余额，101-还款卡+余额
    },

    # 授信结果通知接口（调用）
    "mplCreditResultInform": {
        "requestTm": datetime.now().strftime('%Y%m%d%H%M%S'),  # 请求时间 通用字段
        "jrnNo": jrnNo,                                        # 请求流水号  通用字段
        "clientId": "msyd",                                    # 接入渠道号  通用字段(统一购机平台给各个资金方分配的渠道号码)
        "hbUsrNo": hbUsrNo,                                    # 和包贷用户号
        "qryCreditId": "12312312",                             # 授信流水,以此作为查询条件
        "creditResult": "1",                                   # 授信订单状态   0-处理中,1-成功,2-失败
        "creditRetMsg": "00000",                               # 授信订单状态描述  成功-00000，处理中-11111，失败-错误描述，需返回对应响应码
        "creditAmt": "1000.00",                                # 授信额度(失败时可以为空)
        "effDt": "20190711",                                   # 授信额度生效日期
        "expDt": "20190811",                                   # 授信额度失效日期
        "buisnessId": "002",                                   # 业务类型  001-号码借,002-购机直降
        "creditLockTm": ""                                     # 授信锁定到期时间(到此时间点前，无法发起授信)
    },

    # 借款结果通知接口（调用）
    "mplLoanResultInform": {
        "requestTm": datetime.now().strftime('%Y%m%d%H%M%S'),  # 请求时间 通用字段
        "jrnNo":jrnNo,                     # 请求流水号  通用字段
        "clientId": "msyd",                # 接入渠道号  通用字段(统一购机平台给各个资金方分配的渠道号码)
        "brwOrdNo": "50620191209152443267823713",         # 和包贷借款订单号
        "brwOrdDt": "20191209",            # 和包贷借款订单日期
        "orgOrdNo": "LW20191209HB999999",            # 资金方借款订单号
        "brwOrdSts": "F1",                 # 借款订单状态   S1-成功，F1-失败
        "brwOrdMsg": "00000",              # 借款结果描述  成功-00000，失败-错误描述，需返回对应响应码
        "actualOrgId": "888190900238401",           # 实际借款出资方编号
        "actualOrgNm": "民盛互联网小额贷款",          # 实际出资方名称
        "buisnessId": "002"                # 业务类型  001-号码借,002-购机直降
    },

    # 资金方主动扣款接口（调用）
    "mplFundCharge": {
        "requestTm": datetime.now().strftime('%Y%m%d%H%M%S'),  # 请求时间 通用字段
        "jrnNo":jrnNo,                     # 请求流水号  通用字段
        "clientId": "msyd",                 # 接入渠道号  通用字段(统一购机平台给各个资金方分配的渠道号码)
        "brwOrdNo": "18390525555",          # 和包贷借款订单号
        "brwOrdDt": "20190730",             # 和包贷借款订单日期
        "orgOrdNo": "LW20190731HB000002",   # 资金方借款订单号
        "ordMod": "1",                      # 借款订单模式  1-分期还款
        "rpyMod": "1",                      # 还款模式(ordMod=1时必传) 0：还全部(购机不传),1-还某期,2-提前清贷,3-退货
        "rpySeq": "1",                      # 还款期数 当rpyMod=1时必传,其余为空
        "applyRpyAmt": "8.13",              # 申请应还金额   rpyMod=1时则返回当期应还金额（本金）
        "serviceFee": "1.87",               # 手续服务费
        "lateFee": "0.00",                  # 逾期服务费
        "buisnessId": "002"                 # 业务类型  001-号码借,002-购机直降
    },

    # 资金方主动扣款结果查询接口（调用）
    "mplFundChargeResultQry": {
        "requestTm": datetime.now().strftime('%Y%m%d%H%M%S'),  # 请求时间 通用字段
        "jrnNo":jrnNo,                     # 请求流水号  通用字段
        "clientId": "msyd",                # 接入渠道号  通用字段(统一购机平台给各个资金方分配的渠道号码)
        "qryModel": "0",                   # 查询模式  0-使用预处理流水查询，1-使用还款订单号查询
        "rpyPreJrn": "18390525555",        # 和包贷还款预处理流水号   qryModel=0必传
        "rpyPreDt": "20190905",            # 和包贷还款预处理日期     qryModel=0必传
        "rpyOrdNo": "18390525555",         # 和包贷还款订单号         qryModel=1必传
        "rpyOrdDt": "20190708",            # 和包贷还款订单日期       qryModel=1必传
        "buisnessId": "002"                # 业务类型  001-号码借,002-购机直降
    },
    # 资金方主动扣款结果查询接口（调用）
    "user-isv-fund": {
        "orderNo": '5600000',           # 和包贷借款订单号
        "orderDate": "20190905",        # 和包贷借款订单日期
        "repaymentMode": "1",           # 还款模式  1-提前结清，2-使用还款订单号查询
        "repaymentSeq": "",             # 还款期数
        "applyRepaymentAmt": "100.22",  # 申请应还金额(本金+利息)
        "serviceFee": "10.22",          # 手续服务费
        "lateFee": "0.55"               # 逾期服务费
    },

    # 上海银行：213003授信结果通知（被调用）
    "creditInfo_SH": {
        "document": {
            "head": {
                "HeadTranCode": "IBPS_LM_213003",  # 接口名称 length-16
                "HeadBusinessId": "213003" + jrnNo,  # 请求系统交易流水号 length-36
                "HeadMsgVersion": "1.0",            # 报文版本号 length-4
                "HeadReqDate": c_date,             # 交易日期:YYYYMMDD
                "HeadReqTime": c_time,             # 交易时间:HHMMSS
                "HeadSndOrgan": HeadSndOrgan,      # 发起方代称（渠道号）双方约定 length-10
                "HeadRevOrgan": HeadRevOrgan       # 接收方代称（渠道号）双发约定 length-14
            },
            "body": {
                "creditAppNo": "CW" + jrnNo,       # 授信申请案件号：平台方提供，保证全局唯一 length-30
                "creditResNo": "CW" + jrnNo,       # 授信结果编号：银行生成 length-30
                "productParam": productParam,      # 产品参数：length-30
                "creditStatus": "S",               # 授信状态：S-成功，F-失败
                "resultCode": "R001",              # 授信结果码： length-12
                "resMsg": "风控拒绝",               # 非必填：授信结果描述 length-256
                "signEndDate": "20200417",         # 授信签约有效期-结束时间： yyyyMMdd
                "userAcct": hbUsrNo,               # 非必填：平台账户账号(和包号) length-100
                "limit": 0
            }
        }
    },

    # 上海银行：115006合作方授信申请接口（调用）
    "apply_SH":{
        "document": {
            "head": {
                "HeadTranCode": "IBPS_LM_115006",  # 接口名称 length-16
                "HeadBusinessId": "115006"+jrnNo,  # 请求系统交易流水号 length-36
                "HeadMsgVersion": "1.0",            # 报文版本号 length-4
                "HeadReqDate": c_date,             # 交易日期:YYYYMMDD
                "HeadReqTime": c_time,             # 交易时间:HHMMSS
                "HeadSndOrgan": HeadSndOrgan,         # 发起方代称（渠道号）双方约定 length-10
                "HeadRevOrgan": HeadRevOrgan          # 接收方代称（渠道号）双发约定 length-14
            },
            "body": {
                "creditAppNo": "CW" + jrnNo,       # 授信申请案件号：平台方提供，保证全局唯一 length-30
                "tradeType": "1",                  # 交易类型：固定为1-信用申请
                "productParam": productParam,           # 产品参数：length-30
                "tradeChannelId": tradeChannelId,  # 业务渠道编号
                "userType": "0",                   # 用户类别：0-普通用户(默认)，1-内部员工，2-VCP
                "name": "测试",
                "certType": "0",                   # 证件类型：0-身份证
                "certNo": "610521199510300614",    # 18位身份证
                "mobilePhone": mblNo,
                "authStatus": "0",                 # 实名认证状态：0-初级实名(默认0已认证),1-高级实名
                "creditAppDate": c_date,           # 授信申请日期
                "currency": "156",                 # 申请币种：默认156-人名币
                "applTerms": "24",                 # 申请期数：默认为24月
                "loanPurpose": "测试",              # 贷款签约用途 length-250
                "custDataRec": {
                    "sex": "1",                    # 性别：0-未知的性别，1-男性，2-女性，9-未说明性别
                },              # 客户附加信息：(List字段)
                "subProdParam": "",                # ？非必填：子产品参数 length-30
                "userAcct": hbUsrNo,               # 非必填：平台账户账号(和包号) length-100
                "registerTime": "20190905 14:12:11",  # 非必填：用户账户注册时间
                "acctStatus": "0",                 # 非必填：账户状态：0-激活(默认)，1-未激活
                "expDay": "20220101",              # 非必填：证件有效期 长期-99991231
                "adviceLimit": "",                 # 非必填：平台上送的建议授信额度
                "applAddr": "",                    # 非必填：申请地点 length-300
                "conScenarios": "",                # 非必填：消费场景
                "imageNo": "",                     # 非必填：影像编号：对应TAR包文件名 length-50
                "accOfopenBank1": "",              # 非必填：开户行清算行行号
                "accOfopenBank2": "",              # 非必填：开户行所属网银系统行号
                "acctName": "",                    # 非必填：银行账户名
                "acctNumber": "",                  # 非必填：银行卡号
                "reservedPhone": "",               # 非必填：银行预留手机号
                "extension": {
                    "info1":"18797682168",         # mobile-授信手机号
                    "info10":"003",                # creditUsrJob-用户工作类型(授信)-usrJob
                    "info106": "1",                # creditOperator3Verify-运营商三要素验证是否一致（授信）1-Y，0-N
                    "info109": "1",                # tencentLivenessPicVerifyResult-腾讯照片人脸核身结果描述 1-成功，0-失败
                    "info11":"段炳华",              # creditContactName-紧急联系人姓名(授信)-contactName
                    "info111":"18",                # applyProvince-申请省份-usrProvNo
                    "info115": "1",                # baiRongTelStatus-手机在网状态 1-正常,2-停机，3-销号，4-异常，-1-空
                    "info116": "4",                # baiRongTelPeriod-手机在网时长 1,2,3,4,-1
                    "info117": "3",                # baiRongTelOperation-手机运营商名称 1,2,3,4,-1
                    "info118": "0",                # baiHangNonRevOverdueCount-百行非循环累计逾期次数 0,1,2,3,4,-1
                    "info12":"18728672753",        # creditContactMblNo-紧急联系人电话(授信)-contactMblNo
                    "info120": "0",                # tongDunRepresentList-身份证命中欠款公司法人代表名单 1-Y，0-N
                    "info121": "0",                # tongDunJusticeRepresentList-手机号命中欠款公司法人代表名单 1-Y，0-N
                    "info122": "0",                # baiHangRevRemainingOverdueAccountCount-百行当前逾期循环授信账户数 0,1,2,3,4,-1
                    "info123": "18",               # usrProvNo-用户归属省份-usrProvNo
                    "info13":"004",                # creditContactRelation-紧急联系人关系(授信)-contactRelation
                    "info14":"6212261910000671809",# creditBankCardNo-银行卡号(授信)
                    "info15":"唐任来",              # creditBankCardName-银行卡实名姓名(授信)
                    "info16":"18797682168",        # creditBankMblNo-银行卡预留手机号(授信)
                    "info17": "-1",                # creditCompanyName-公司名称(授信)-非必填
                    "info18":"90",                 # creditLiveScore-活体识别分数(授信)
                    "info19":"005",                # creditSchooling-学历(授信)
                    "info2":"43290219781008541X",  # idcard-身份证号(授信)
                    "info20":"HB",                 # creditAppId-渠道编码(授信)
                    "info21":"001",                # creditSocialIdentity-社会身份(授信)
                    "info22":"-1",                 # creditOprId-营业员编号(授信)-非必填
                    "info24":"-1",                 # creditApplyModelCode-用户借款申请手机串码(授信)-非必填
                    "info25":"-1",                 # creditApplyIp-用户借款申请IP地址(授信)-非必填
                    "info26":"-1",                 # creditUserMail-常用邮箱(授信)-非必填
                    "info28":"007",                # creditCompanyAddressCityCode-公司地址市编码（授信）-非必填
                    "info29":"007",                # creditAddressCityCode-家庭住址市编码（授信）-addressCode
                    "info3":"唐任来",               # name-姓名(授信)
                    "info30":"001",                # creditSocialIdentit-社会身份(授信)
                    "info31":"",                   # loanMblNo-用户手机号（借款）
                    "info32":"",                   # loanHbUsrNo-和包ID（借款）
                    "info33":"",                   # loanOprId-营业员编号（借款）
                    "info34":"",                   # loanAppId-渠道编码（借款）
                    "info35":"",                   # loanApplyModelCode-用户借款申请手机串码（借款）
                    "info36":"",                   # loanApplyIp-用户借款申请IP地址（借款）
                    "info37":"",                   # loanActBrwMblNo-实际借款用户手机号（借款）
                    "info38":"",                   # loanActBrwHbUsrNo-实际借款和包ID（借款）
                    "info39":"",                   # loanActBrwIdNo-实际借款用户身份证号（借款）
                    "info4":"9943290219781008541X",# creditHbUsrNo-和包贷用户号(授信)
                    "info43": "0",                 # tencentRiskCode3103-天御风险-疑似线上养号小号 1-Y，0-N
                    "info49": "0",                 # tongDunIdNumberHighFocusList-身份证命中高风险关注名单 1-Y，0-N
                    "info5":"18797682168",         # creditMblNo-用户注册手机号(授信)
                    "info50": "0",                 # tongDunPhoneHighFocusList-手机号命中高风险关注名单 1-Y，0-N
                    "info51":1,                    # creditMaritalSta-婚姻情况(授信) 1-已婚,0-未婚
                    "info52":0,                    # creditCusSex-性别(授信) 0-女,1-男,2-未知
                    "info53":41,                   # creditAge-年龄（周岁）
                    "info54":19,                   # creditTimeHour-授信时间（时）
                    "info55":"",                   # info55-loanTimeHour
                    "info6":"唐任来",               # creditUsrIdName-用户身份证姓名(授信)
                    "info7":"43290219781008541X",  # creditUsrIdCard-用户身份证号码(授信)
                    "info71":"20000.00",           # adviseLimit-仁东建议额度
                    "info72":-1,                   # creditTotalBonusAmt-总红包额(授信)
                    "info73":"",                   # loanPkgAmt-套餐金额（借款）
                    "info74":"",                   # loanAmt-贷款金额（借款）
                    "info79":693,                  # amountModelScore-额度模型分-规则通过的XYF.value
                    "info8":"北京",                 # creditAddress-家庭详细地址(授信)
                    "info9":"004",                 # creditInCome-收入区间(授信)
                    "info91":"2019-07-08",         # creditRegDt-注册日期(授信)
                    "info92":"2020-12-20",         # creditIdExpDt-身份证有效日期(授信)
                    # "info110": "1",    # tencentIdCardPicVerifyResult-腾讯身份证头像照片人脸核身结果(已下架)

                }
            },
        }
    },

    # 上海银行：111003授信状态查询接口（调用）-这期不上
    "apply_status_SH": {
        "document": {
            "head": {
                "HeadTranCode": "IBPS_LM_111003",  # 接口名称 length-16
                "HeadBusinessId": "111003" + jrnNo,  # 请求系统交易流水号 length-36
                "HeadMsgVersion": "1.0",            # ？报文版本号 length-4
                "HeadReqDate": c_date,             # 交易日期:YYYYMMDD
                "HeadReqTime": c_time,             # 交易时间:HHMMSS
                "HeadSndOrgan": HeadSndOrgan,            # ？发起方代称（渠道号）双方约定 length-10
                "HeadRevOrgan": HeadRevOrgan          # ？接收方代称（渠道号）双发约定 length-14
            },
            "body": {
                "creditAppNo": "CW" + jrnNo,       # 授信申请案件号：平台方提供，保证全局唯一 length-30
                "productParam": productParam,           # ？产品参数：length-30
                "tradeChannelId": "",              # 非必填：？业务渠道编号
            }
        }
    },

    # 上海银行：115007签约开户（签约、E账户开立、建额）接口（调用）
    "open_account_SH": {
        "document": {
            "head": {
                "HeadTranCode": "IBPS_LM_115007",  # 接口名称 length-16
                "HeadBusinessId": "115007" + jrnNo,  # 请求系统交易流水号 length-36
                "HeadMsgVersion": "1.0",              # 报文版本号 length-4
                "HeadReqDate": c_date,               # 交易日期:YYYYMMDD
                "HeadReqTime": c_time,               # 交易时间:HHMMSS
                "HeadSndOrgan": HeadSndOrgan,         # 发起方代称（渠道号）双方约定 length-10
                "HeadRevOrgan": HeadRevOrgan          # 接收方代称（渠道号）双发约定 length-14
            },
            "body": {
                "creditAppNo": "CW" + jrnNo,         # 授信申请案件号：平台方提供，保证全局唯一 length-30
                "creditResNo": "SH" + jrnNo,         # 授信结果编号：length-30()
                "productParam": productParam,        # 产品参数：length-30
                "subProdParam": subProdParam,        # 子产品参数：length-30
                "tradeChannelId": tradeChannelId,    # 业务渠道编号
                "name": "朱乐",
                "certType": "0",
                "certNo": "610521199510300614",
                "mobilePhone": "17602907776",
                "bindCardNo": "621700415000070000",  # 绑定银行卡号
                "reservedPhone": "17602907776",      # 银行卡预留手机号
                "occupation": "01",                  # 见“职业表”
                "homeAddr": "01",                    # 不包含“？”、“*”、“@”或全角符号等异常字符
                "idEffecDate": "20191005",           # 证件有效期开始日期：应该小于等于当前日期
                "expDay": "99991231",                # 证件有效期到期日期：大于开始日期、当前日期 ，永久有效填写99991231
                "authStatus": "0",                   # 实名认证状态：0-初级实名(默认0已认证),1-高级实名
                 # 非必填
                "imageNo": "",                       # 影像编号：对应TAR包文件名
                "userAcct": "",                      # 用户账户
				"registerTime":"",                   # 用户账户注册时间：YYYYMMDD HH:MM:SS
				"acctStatus":"",                     # 账户状态：0-激活 1-未激活
                "nationality": "",                   # 国籍：见“国籍”
                "licIssuAutho": "",                  # 发证机关
				"extension":None
			}
        }
    },

    # 上海银行：112006放款接口（对外），web端上传放款文件（调用）
    "pay_SH": {
        "document": {
            "head": {
                "HeadTranCode": "IBPS_LM_112006",    # 接口名称 length-16
                "HeadBusinessId": "112006" + jrnNo,  # 请求系统交易流水号 length-36
                "HeadMsgVersion": "1.0",              # 报文版本号 length-4
                "HeadReqDate": c_date,               # 交易日期:YYYYMMDD
                "HeadReqTime": c_time,               # 交易时间:HHMMSS
                "HeadSndOrgan": HeadSndOrgan,         # 发起方代称（渠道号）双方约定 length-10
                "HeadRevOrgan": HeadRevOrgan          # 接收方代称（渠道号）双发约定 length-14
            },
            "body": {
                "creditAppNo": "CW" + jrnNo,         # 授信申请案件号：平台方提供，保证全局唯一 length-30
                "payAppOrderNo": "PAY" + jrnNo,      # 支付申请订单号：平台方提供，length-30()
                "productParam": productParam,         # 产品参数：length-30
                "subProdParam": subProdParam,         # 子产品参数：length-30
                "tradeChannelId": tradeChannelId,     # 业务渠道编号
                "spePayAcct": "621700415000070000",  # 指定放款账号  （开户接口 subAcctNo电子账户）
                "speRepayAcct": "621700415000070000", # 指定还款账号  （开户接口 subAcctNo电子账户）
                "amount": "1000.00",                 # 交易金额
                "inteRateCode": inteRateCode,        # 执行利率码
                "pnitRateCode": pnitRateCode,        # 罚息利率码
                "payType": "02",                     # 支付方式：01-自主支付，02-受托支付（固定）
                "acctCode": acctCode,                # 代偿代码：对应借据级别的代偿还款账户
                "oppAcct": "-1",                     # 清算账号：payType=02-受托支付，必输
                "currency": "156",                   # 入账币种
                "purpose": "01",                     # 用途大类：01-消费类，02-经营类，03-综合类，99-其他；
                "subPurpose": "0199",                # 详细用途：0199-其他消费用途
                "signatureAppro": "0199",            # 加签数据
                "info":{
                    "brwOrdNo": "56020200310183701",  # 和包贷借款订单号
                    "brwOrdDt": "20200310",
                    "productId": "套餐编号",           # 套餐编号
                    "pkgAmt": 1000.0,                 # 套餐金额
                    "loanMonth": 24,
                    # 非必填
                    "mblNo":"13000000001",           # 用户手机号
                    "hbUsrNo": "99430921199410127728",  # 和包ID
                    "loanAmt": 1000.0,
                    "oprId": "002",                  # 营业员编号
                    "oprMblNo": "159173000",         # 营业员手机号
                    "depId": "002",
                    "depNm": "测试县湖口永利移动专营店",
                    "depMngMblNo": "159173001",      # 业务办理营业厅负责人手机号
                    "mngModel": "001",               # 营业厅经营模式
                    "busTyp": "1",                   # 业务类型：0-非终端类,1-终端类
                    "depProvNo": "18",
                    "depCityNo": "031",
                    "depRegNo": "1",
                    "mercId":"",                     # 门店商户号
                    "mercNm": "",
                    "provStgDay": "02",
                    "pkgTyp": "",                    # 套餐业务类型
                    "feeRate": 0.23,                 # 移动套餐费率(总)
                    "monthlyRate":0.009583           # 套餐月利率
                },
                 # 非必填
                "signNo": "",                        # 贷款签约编号
                "contractNum": "",                   # 签约合同编号
                "imageNo": "",                       # 影像编号：对应TAR包文件名
                "creditResNo": "",                   # 授信结果编号：length-30()
                "cleanCode": cleanCode,              # 清算代码
                "fixRepayFlag": "Y",                 # 是否固定日：若为固定日类型，固定还款日与跳期标志必选
				"fixRepayDate":"02",                 # 固定还款日：固定每月某一天，无对应日取月末
				"firPeriLable":"",                   # 首期跳期标识：00-跳期(首期还款日在放款日的下一期) 01-不跳期(首期还款日在放款日的当期)
                "orderAmt": "",                      # 订单金额
                "initiPayAmt": "",                   # 首付款金额：保留两位小数点
                "txnShortDesc": "",                  # 交易描述
                "charge": "",                        # 手续费
                "remark": ""
			}
        }
    },

    # 上海银行：125007提前还款试算接口（调用）-提前结清、退货
    "pre_repayTrial_SH": {
        "document": {
            "head": {
                "HeadTranCode": "IBPS_LM_125007",    # 接口名称 length-16
                "HeadBusinessId": "125007" + jrnNo,  # 请求系统交易流水号 length-36
                "HeadMsgVersion": "1.0",              # 报文版本号 length-4
                "HeadReqDate": c_date,               # 交易日期:YYYYMMDD
                "HeadReqTime": c_time,               # 交易时间:HHMMSS
                "HeadSndOrgan": HeadSndOrgan,              # 发起方代称（渠道号）双方约定 length-10
                "HeadRevOrgan": HeadRevOrgan             # 接收方代称（渠道号）双发约定 length-14
            },
            "body": {
                "borrowNo": "BR" + jrnNo,            # 贷款借据号：在支付交易的时候生成的订单编号
                "productParam": productParam,        # 产品参数：length-30
                "tradeChannelId": tradeChannelId,    # 业务渠道编号
                "subProdParam": "",                  # 非必填：子产品参数 length-30
            }
        }
    },

    # 上海银行：IBPS_LM_125005当期提前还款接口（调用）
    "pre_repay_SH": {
        "document": {
            "head": {
                "HeadTranCode": "IBPS_LM_125005",    # 接口名称 length-16
                "HeadBusinessId": "125005" + jrnNo,  # 请求系统交易流水号 length-36
                "HeadMsgVersion": "1.0",              # 报文版本号 length-4
                "HeadReqDate": c_date,               # 交易日期:YYYYMMDD
                "HeadReqTime": c_time,               # 交易时间:HHMMSS
                "HeadSndOrgan": HeadSndOrgan,        # 发起方代称（渠道号）双方约定 length-10
                "HeadRevOrgan": HeadRevOrgan         # 接收方代称（渠道号）双发约定 length-14
            },
            "body": {
                "borrowNum": "RP" + jrnNo,           # 贷款借据号：在支付交易的时候生成的订单编号
                "chanRqId": "MS" + jrnNo,            # 合作平台方流水号：length-36
                "productParam": productParam,        # 产品参数：length-30
                "subProdParam": subProdParam,       # 子产品参数 length-30
                "repayInstNum": 1,                   # 还款期次
                "repayAmtTot": 100.22,               # 还款总金额
                "currency": "156",                   # 入账币种
                "purpose": "还款",                   # 用途
                # 非必填
                "txnShortDesc": "",                  # 交易描述
                "remark": "",
				"info":None                          # 预留字段
            }
        }
    },

    # 上海银行：122004全额提前还款接口（调用）
    "pre_repayAll_SH": {
        "document": {
            "head": {
                "HeadTranCode": "IBPS_LM_122002",    # 接口名称 length-16
                "HeadBusinessId": "122002" + jrnNo,  # 请求系统交易流水号 length-36
                "HeadMsgVersion": "LM",              # 报文版本号 length-4
                "HeadReqDate": c_date,               # 交易日期:YYYYMMDD
                "HeadReqTime": c_time,               # 交易时间:HHMMSS
                "HeadSndOrgan": HeadSndOrgan,              # ？发起方代称（渠道号）双方约定 length-10
                "HeadRevOrgan": HeadRevOrgan             # ？接收方代称（渠道号）双发约定 length-14
            },
            "body": {
                "borrowNum": "RP" + jrnNo,           # 贷款借据号：在支付交易的时候生成的订单编号
                "chanRqId": "MS" + jrnNo,            # ? 合作平台方流水号：length-36
                "productParam": productParam,         # 产品参数：length-30
                "subProdParam": subProdParam,        # 子产品参数 length-30
                "amount": 100.22,                    # 还款总金额
                "penalty": 10.22,                    # 违约金
                "paymentType": "300",                # 还款类型：300-提前全额还款
                "isSettle": "1",                     # 是否结清：0-否，1-是
                "purpose": "02",                    # 用途 01-还款，02-退货
                # 非必填
                "txnShortDesc": "",                  # 交易描述
                "remark": "",
				"info":None                          # 预留字段
            }
        }
    },

    # 上海银行：122001联机还款接口（支持正常还款、逾期还款、非应计还款）（调用）-还某一期：
    "normal_repay_SH": {
        "document": {
            "head": {
                "HeadTranCode": "IBPS_LM_122001",    # 接口名称 length-16
                "HeadBusinessId": "122002" + jrnNo,  # 请求系统交易流水号 length-36
                "HeadMsgVersion": "LM",              # ？报文版本号 length-4
                "HeadReqDate": c_date,               # 交易日期:YYYYMMDD
                "HeadReqTime": c_time,               # 交易时间:HHMMSS
                "HeadSndOrgan": HeadSndOrgan,              # ？发起方代称（渠道号）双方约定 length-10
                "HeadRevOrgan": HeadRevOrgan             # ？接收方代称（渠道号）双发约定 length-14
            },
            "body": {
                "borrowNum": "RP" + jrnNo,           # 贷款借据号：在支付交易的时候生成的订单编号
                "chanRqId": "MS" + jrnNo,            # 合作平台方流水号：length-36
                "productParam": productParam,        # 产品参数：length-30
                "subProdParam": subProdParam,        # 子产品参数 length-30
                "tradeChannelId": tradeChannelId,    # 业务渠道编号
                "paymentType": "100",                # 还款类型：100-到期正常还款
                "isSettle": "1",                     # 是否结清(针对某一期)：0-否，1-是
                "repayInstNum": 1,                   # 还款期次
                "amount": 100.22,                    # 还款总金额
                "penalty": 10.22,                    # 违约金
                "currency": "156",                   # 入账币种
                "purpose": "还款",                   # 用途
                # 非必填
                "txnShortDesc": "",                  # 交易描述
                "remark": "",
				"info":None                          # 预留字段
            }
        }
    },
    "preview_result":{
		"lateFee":0,
	    "orgOrdNo":"LW20200422HB000003",
		"orgPlanNo":"200422HB0000031",
		"rpyAmt":41.67,
		"rpyDay":"20200502",
		"rpySts":"0",
		"seqNo":1,
		"serviceFee":9.58,
		"totSeqCnt":24
	},
}

if __name__ == '__main__':
    # json indent=缩进空格数,得到树型格式; ensure_ascii=False,不希望中文字符等被unicode转义; sort_keys=True,希望显示的字典内的字段是排过序的
    data = json.dumps(API_MSYD['freeze'],indent=4,ensure_ascii=False)
    print(data)